<?php
/**
* @package   auto_occasion
* @subpackage annonce
* @author    your name
* @copyright 2011 your name
* @link      http://www.yourwebsite.undefined
* @license    All rights reserved
*/

/**
 * page d'ajout d'annonce en front
 * @ref ppt : AO _ Dépôt d_annonce(1)
 */
class FoAnnonceDeposerCtrl extends jController {

   /**
    * FO : page d'ajout d'annonce - choix formule : feerique, dynmaique ou basique advert 2
    * + liste des temoignages + recap annonce (bloc left)
    */
    function choixFormule() {

        jClasses::inc("annonce~annonceFormuleSrv") ;
        jClasses::inc("formule~formuleSrv");
        jClasses::inc("formule~formuleOptionSrv");
        jClasses::inc('temoignage~temoignageSrv');
        jClasses::inc('commun~parametre');
        jClasses::inc('commun~common');

        $formule = annonceFormuleSrv::getFormule();


        $rep = $this->getResponse('htmlFo');

        
        $rep->menusActifs = frontHtmlResponse::MENU_ANNONCE_CHOIX_FORMULE ;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ANNONCE_GESTION) ;

        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/popup.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/choixFormuleFront.js');
		

        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ANNONCE_AJOUT_2);
		$rep->title				= isset($headerContent->title)?$headerContent->title:'';
		$headerContent->title			= isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords		= isset($headerContent->keywords)? $headerContent->keywords:'' ;
		$headerContent->desc			= isset($headerContent->desc)? $headerContent->desc:'' ;
		$keywords						= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description					= "<meta name='Description' content='" . $headerContent->desc. "'>" ;

        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---
        
        $idOccasion = $this->intParam('idOccasion', 0);

        $rep->bodyTpl = 'annonce~FoAnnonceDeposer';
       
        // Récupération de la liste des temoignages, 10 items, temoignage_id, vendeur_nom, temoignage_description
        $temoignage = temoignageSrv::liste(10);
        $idVendeurListe = $occasion = array();
        if (sizeof($temoignage)) {
            foreach ($temoignage as $itemT) {
                if ($itemT->vendeur_id) 
                    $idVendeurListe[] = $itemT->vendeur_id;
            }
            if (sizeof($idVendeurListe)) {
                //récupère les ids occasion correspondant aux vendeurs
                $occasion = temoignageSrv::getIdOccasionByVendeur($idVendeurListe);
            }
        }

        $recapAnnonce = null;
        if (isset($_SESSION['SESS_RECAP_ANNONCE'])) {
            $recapAnnonce = unserialize($_SESSION['SESS_RECAP_ANNONCE']);
        }
        
        
        //options pour l'annonce
        $formuleSelected    = common::chargeParId(ID_FORMULE_DYNAMIQUE, "ao_formule");
        $choixFormules		= annonceFormuleSrv::getFormulesChoices($formuleSelected->id);
        $optPrixSup			= annonceFormuleSrv::getOptionsPrixSup($choixFormules,0,'');

        $rep->body->assign('formuleSelected', $formuleSelected);
        $rep->body->assign('choixFormules', $choixFormules);
        $rep->body->assign('optPrixSup', $optPrixSup);
        $rep->body->assign('occasion', $occasion);
        $rep->body->assign('temoignage', $temoignage);
        $rep->body->assign('idOccasion', $idOccasion);
        $rep->body->assign('recapAnnonce', $recapAnnonce);
        $rep->body->assign('formule', $formule);

        return $rep;
    }

   /**
    * FO : page d'ajout d'annonce - paiement :  advert 3
    * + récap de la formule choisie
    */
    function paiement() {
    
        jClasses::inc ("annonce~annonceFormuleSrv") ;
        jClasses::inc ("annonce~annoncePaiementSrv") ;
        jClasses::inc('temoignage~temoignageSrv');
        jClasses::inc('commun~parametre');
        jClasses::inc('annonce~annonceSrv');
        jClasses::inc('commun~common');
        jClasses::inc("formule~formuleSrv");
        jClasses::inc("formule~formuleOptionSrv");

        $id             = $this->intParam('choix-form', 0);
        $estPayant      = $this->intParam('prix-form', 0);
        $idOccasion     = $this->intParam('idOccasion', 0);

        $err        = $this->intParam('err',0);
        $NUMERR     = $this->intParam('NUMERR',0);

        // si venant du formulaire de paiement , retour en cas d'erreur
        if ($err) {
            $id             = $this->intParam('cf', 0);
            $estPayant      = $this->intParam('pf', 0);
            $idOccasion     = $this->intParam('id', 0);
        }

        /*recuperation choix supplementaires choisis*/
        $listeChoix     = $this->stringParam('choix','');
        /*generation option de parution*/
        $optParution    = annonceFormuleSrv::generateOptParutionByFormuleId($id);
        $optParution    = $optParution['option'];
        annonceFormuleSrv::deleteAnnonceChoice($idOccasion);
        annonceFormuleSrv::linkAnnonceFormuleChoix($idOccasion, $id, $listeChoix);
        annonceSrv::updateOptParution($idOccasion, $optParution);


        //Récupération prix formule et prix options choisie 
        $prixFormule = ($id) ? common::chargeParId ($id, 'ao_formule')->prix : 0 ; //$prixFormule->prix
        //Prix de chaque nouvelle option ajoutée autre que celles déjà incorporée dans la formule
        $prixTotal = $prixFormule;
        
        if($listeChoix != ''){
            
            $tabPrix = formuleSrv::getPrixOptionChoisie($listeChoix);
            if(sizeOf($tabPrix))  $prixTotal += $tabPrix[0]->prix_option;
        }


        if (!$prixTotal) {
            $rep         = $this->getResponse('redirect');
            $rep->action = 'annonce~FoAnnonceDeposer:confirmation';
            $rep->params = array('id'=>$id, 'idOccasion'=>$idOccasion, 'type'=>'g' );

            return $rep;
        }


        $formules       = common::chargeParId($id,'ao_formule');
        $toOptions      = formuleSrv::liste_option();
        $ArrayTmp = array() ;
        foreach ($toOptions as $oOption) {
            $oOption->toChoises = formuleOptionSrv::getChoiseByOptionId($oOption->id_option_formule) ;
            $ArrayTmp[] = $oOption ;
        }

        $toOptions = $ArrayTmp ;


        // Récupération de la liste des temoignages, 10 items, temoignage_id, vendeur_nom, temoignage_description
        $temoignage = temoignageSrv::liste(10);
       
        $rep = $this->getResponse('htmlFo');

        $rep->menusActifs = frontHtmlResponse::MENU_ANNONCE_GESTION ;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ANNONCE_GESTION) ;

		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');


        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ANNONCE_AJOUT_3);
        // change le header de la page en cours
		$rep->title				= isset($headerContent->title)?$headerContent->title:'';
		$headerContent->title			= isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords		= isset($headerContent->keywords)? $headerContent->keywords:'' ;
		$headerContent->desc			= isset($headerContent->desc)? $headerContent->desc:'' ;
		$keywords						= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description					= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---
        
        $rep->bodyTpl = 'annonce~FoAnnonceDeposerPaiement';
        $nb_min = 1; 
        $nb_max = 10000;
        $nombre_cmd = rand($nb_min,$nb_max);

        $tarif   = $prixTotal;
        $montant = $tarif*100;
        
        
        $vendeur   = annoncePaiementSrv::getVendeur($idOccasion);

       $patherror = 'http://' . $_SERVER['SERVER_NAME'] .jUrl::get('annonce~FoAnnonceDeposer:paiement', array('id'=>$idOccasion, 'err'=>1, 'cf'=>$id, 'pf'=>$estPayant));

        $pathregret = 'http://' . $_SERVER['SERVER_NAME'] . jUrl::get('annonce~FoAnnoncePaiement:regret');
        $pathmerci = 'http://' . $_SERVER['SERVER_NAME'] .  jUrl::get("annonce~FoAnnonceDeposer:confirmation", array('id'=>$formules->id,'idOcc'=>$idOccasion,'type'=>'cb', 'mt'=>$tarif));
        $pathnotify = 'http://' . $_SERVER['SERVER_NAME'] .  jUrl::get("annonce~FoAnnoncePaiement:notify");

        $codeErr = '';
        // si code d'erreur
        if ($err && $NUMERR != 0) {
            $codeErr = annoncePaiementSrv::getErrorMessage ($NUMERR);
        }
		
		//session stocker la recaputilation de l'annonce
        if (isset($_SESSION['SESS_RECAP_ANNONCE'])) {
            $recapAnnonce = unserialize($_SESSION['SESS_RECAP_ANNONCE']);
        }
        $rep->body->assign('montant',round($montant));
        $rep->body->assign('tarif',$tarif);
        $rep->body->assign('nombre_cmd',$nombre_cmd);
        $rep->body->assign('vendeur',$vendeur);
        $rep->body->assign('pathregret',$pathregret);
        $rep->body->assign('pathmerci',$pathmerci);
        $rep->body->assign('pathnotify',$pathnotify);
        $rep->body->assign('patherror',$patherror);
       
        $rep->body->assign('temoignage', $temoignage);
        $rep->body->assign('formules', $formules);
        $rep->body->assign('idOccasion', $idOccasion);
        $rep->body->assign('toOptions', $toOptions);
		$rep->body->assign('recapAnnonce', $recapAnnonce);
        $rep->body->assign('err', $err);
        $rep->body->assign('codeErr', $codeErr);

        return $rep;
    }


    /**
    * FO : page d'ajout d'annonce / détail de la voiture (marque, photos, etc ....) + controle pays de l'internaute
    */
    function detail() {
        
        jClasses::inc ("commun~common") ;
        jClasses::inc ("commun~injectionSrv") ;
        
        $idVendeur  = $this->intParam('idVendeur',0);
        $pos        = $this->intParam('pos',0);
        $rep        = $this->getResponse('htmlFo');
                
        $rep->menusActifs = frontHtmlResponse::MENU_ANNONCE_ADD_DETAIL;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ANNONCE_GESTION) ;

        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/popup.js');

        // Vérifie si l'internaute vient d'un pays interdit ou non
        $allowedCountry = injectionSrv::isAllowed();
        if (!$allowedCountry) {
            // Quand une personne provenant d’un de ces pays arrive sur le formulaire d’ajout d’annonce, un message d’erreur apparait 
            jClasses::inc('commun~parametre');
            $message = parametre::get(PARAM_INTERNAUTE_INTERDIT_AJOUT_ANNONCE);
            $rep->bodyTpl = 'annonce~FoAnnonceDeposerDetailInterdit';
            
            $rep->body->assign('message', $message);

            return $rep;
        } else {


        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/jquery-ui.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/css/fileuploader.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/infiniteCarousel.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/annonceDeposer.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/prettyPhoto/css/prettyPhoto.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/photoUpload.css');
        
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/ddsmoothmenu.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/annonceAssistante.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/filter.js');
                
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/prettyPhoto/js/jquery.prettyPhoto.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/infiniteCarousel.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/js/ajaxupload.3.5.js');
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/photoUpload.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/controle.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/annonceDeposer.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/accordion.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.iframe.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/annnonceDeposerVideo.js');

		//css et js pour le caroussel
		$rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/ao_caroussel.css');
		$rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/ao_skin.css');
		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.carousel.min.js');
		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/annnonceDeposerVideo.js');
		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/annonceDeposerCaracteristique.js');
        //xml pour le header : title, desc, keywords
        $headerContent					= common::readXml(PATH_XML_ANNONCE_AJOUT_1);
		$rep->title						= isset($headerContent->title)?$headerContent->title:'';
		$headerContent->title			= isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords		= isset($headerContent->keywords)? $headerContent->keywords:'' ;
		$headerContent->desc			= isset($headerContent->desc)? $headerContent->desc:'' ;
		$keywords						= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description					= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---

        $rep->bodyTpl = 'annonce~FoAnnonceDeposerDetail';
        

        $paramCarVoiture    = $paramEquipements = $paramVideo = $paramComment = $paramPhotos = $paramCoord = array();

        if($this->intParam('idOccasion')){
            
            $voitureSelected                = common::chargeParId($this->intParam('idOccasion'), "ao_voiture_occasion");
            $annonceSelected                = $voitureSelected;
            $paramCarVoiture['voiture']     = $voitureSelected;
            $paramEquipements['annonceId']  = $annonceSelected->IdOccasion;
            $paramVideo['video']            = $annonceSelected->annonce_video;
            $paramComment['comment']        = $voitureSelected->Occas_Commentaire;
            $paramPhotos['idOccasion']      = $voitureSelected->IdOccasion;
            $paramPhotos['Occas_Image']     = ($voitureSelected->Occas_Fimage) ? $voitureSelected->Occas_Fimage : '';
            $idVendeur                      = $voitureSelected->Occas_Vendeur;
            $paramCoord['idVendeur']        = $idVendeur;
            $paramCoord['voiture']          = $voitureSelected;

            $rep->body->assign('idOccasion', $voitureSelected->IdOccasion);
            $rep->body->assign('idAnnonce', $annonceSelected->IdOccasion);
        }

        $rep->body->assign('pos', $pos);

        $rep->body->assignZone('oZoneCaracteristiqueVehicule',  'annonce~FoAnnonceDeposerCaracteristiqueVehicule',$paramCarVoiture);
        $rep->body->assignZone('oZoneLeft',                     'annonce~FoAnnonceDeposerLeft');
        $rep->body->assignZone('oZoneEquipement',               'annonce~FoAnnonceDeposerEquipement',$paramEquipements);
        $rep->body->assignZone('oZonePhoto',                    'annonce~FoAnnonceDeposerPhoto',$paramPhotos);
        $rep->body->assignZone('oZoneVideo',                    'annonce~FoAnnonceDeposerVideo',$paramVideo);
        $rep->body->assignZone('oZoneCommentaire',              'annonce~FoAnnonceDeposerCommentaire',$paramComment);
        $rep->body->assignZone('oZoneCoordonnees',              'annonce~FoAnnonceDeposerCoordonnees',$paramCoord);

        return $rep;
        }
    }
    
    /*
     * Fonction pour sauvegarder l'annonce ajoutée
     */
    function sauvegarder(){
        jClasses::inc("commun~common");
        jClasses::inc("commun~communSrv");
        jClasses::inc("annonce~annonceSrv");
        jClasses::inc("annonce~vendeurSrv");
        jClasses::inc('annonce~annonceEquipementSrv');

        //initialisation des variables
        $annonce                             = new stdClass();
        $annonce->idOccasion                 = $this->intParam('idOccasion',0);
        $annonce->annonce_id                 = $this->intParam('idAnnonce',0);
        
        //pour l'annonce
        $annonce->annonce_email              = trim($this->stringParam('email',''));
        $annonce->annonce_video              = trim($this->stringParam('annonce_video',''));
        $annonce->annonce_photo              = ($this->stringParam('photo-annonce','') != '') ? $this->stringParam('fic_princ','').','.$this->stringParam('photo-annonce','') : $this->stringParam('fic_princ','');
        //tous ce qui concerne vendeur
        $annonce->vendeur_id                 = $this->intParam('idVendeur',0);
        $annonce->vendeur_civilite           = trim($this->stringParam('civilite',''));
        $annonce->vendeur_nom                = addslashes(trim($this->stringParam('nom','')));
        $annonce->vendeur_prenom             = addslashes(trim($this->stringParam('prenom','')));
        $annonce->vendeur_naissance          = communSrv::toDateSql(trim($this->stringParam('date_naissance','')));
        $annonce->vendeur_adresse            = addslashes(trim($this->stringParam('adresse','')));
        $annonce->quandMeJoindre             = addslashes(trim($this->stringParam('joindre','')));
        $annonce->vendeur_cp                 = trim($this->stringParam('cp',''));
        $annonce->vendeur_ville              = addslashes(trim($this->stringParam('ville','')));
        $annonce->vendeur_transfert          = trim($this->stringParam('transfert',''));
        $annonce->vendeur_pays               = trim($this->stringParam('pays',''));
        $annonce->vendeur_departement        = trim($this->stringParam('departement',''));
        $annonce->vendeur_immatriculation    = addslashes(trim($this->stringParam('immatriculation','')));
        $annonce->vendeur_tel_dom            = trim($this->stringParam('domicile',''));
        $annonce->vendeur_tel_bureau         = trim($this->stringParam('bureau',''));
        $annonce->vendeur_tel_por            = trim($this->stringParam('portable',''));
        $annonce->vendeur_email              = trim($this->stringParam('email',''));
        $annonce->Vendeur_Adresse_Ip         = $_SERVER["REMOTE_ADDR"];
        $annonce->Vendeur_Localisation_Ip    = '';
        /* localisation IP */        
        $localisations = vendeurSrv::getVendeurCoordsByIP($_SERVER['REMOTE_ADDR']);
        if($localisations != null) {
            $annonce->Vendeur_Localisation_Ip    = $localisations['regionName'] . ' - ' . $localisations['cityName'];
        }       
        
        // tous ce qui concerne voiture 
        $annonce->Occas_Groupe              = trim($this->intParam('ess_iCatId',''));
        $annonce->Occas_Marque              = trim($this->intParam('ess_iMarqueId',''));
        $annonce->Occas_Modele              = trim($this->intParam('ess_iModelId',''));
        $annonce->Occas_Version             = addslashes(trim($this->stringParam('ess_zVersion','')));
        $annonce->Occas_Carburation         = trim($this->intParam('voiture_energie',''));
        $annonce->Occas_Prix                = $this->intParam('voiture_prix',0);
        $annonce->Occas_Adebattre           = trim($this->intParam('voiture_debattre',''));
        $moisCirculation                    = trim($this->stringParam('circulation_1',''));
        $anneeCirculation                   = trim($this->stringParam('circulation_2',''));

        $annonce->Occas_MiseCirculation = ($moisCirculation && $anneeCirculation) ? $anneeCirculation . '-' . $moisCirculation . '-01' : '0000-00-00';
        $annonce->Occas_Millesime       = trim($this->stringParam('millesime',''));
        $annonce->Occas_Kilometrage     = $this->intParam('km','');
        $annonce->Occas_Kilom_Moteur    = $this->intParam('km-moteur','');
        $annonce->Occas_Couleur         = addslashes(trim($this->stringParam('couleur','')));
        $annonce->Occas_Coul_Metal      = $this->intParam('metal','');
        $annonce->Occas_ChevFisc        = $this->intParam('puiss-fiscal','');
        $annonce->Occas_NbPorte         = $this->intParam('nb-porte','');
        $annonce->Occas_Bt_Vitesse      = $this->intParam('boite','');
        $annonce->Occas_Premieremain    = $this->intParam('main','');
        $annonce->Occas_CT              = trim($this->stringParam('ctrl-tech',''));
        $annonce->Occas_IDpartenaire    = $this->intParam('partenaire',0);
        $annonce->Occas_Commentaire     = addslashes(trim($this->stringParam('comment','')));

        $moisGarantie  = trim($this->stringParam('garantie_1',''));
        $anneeGarantie = trim($this->stringParam('garantie_2',''));
        $annonce->Occas_Garantie = ($moisGarantie && $anneeGarantie) ? $anneeGarantie . '-' . $moisGarantie . '-01' : '0000-00-00';
        
        // récupération des choix ds équipements
        $annonce->annonce_id_equipement      = $this->param('id_equipement','');
        $annonce->annonce_choix_equipement = annonceSrv::getAnnonceChoixEquipement($this->params());

        $annonce->vendeur_id = annonceSrv::getVendeurId($annonce);
        
        
        $annonce->idOccasion = annonceSrv::insertOrUpdateVoitureOccasion($annonce);

        $annonce->annonce_id = $annonce->idOccasion;
        $annonce->choix      = annonceSrv::getEquipmentChoix($annonce->annonce_choix_equipement);
        annonceSrv::deleteEquipementAnnonce($annonce->idOccasion);


        // insertion des photos
        if($annonce->annonce_photo != '') {
            //recuperer les id des photos déja existant
            $annonce_photo = array_unique (explode(",",$annonce->annonce_photo));
            $empty_elements = array("");
            $annonce_photo = array_diff($annonce_photo,$empty_elements);
            $photo_id = annonceSrv::returnIdPhotos($annonce_photo);
				
		} else {
            //il n'y a pas d'Idphotos
            $photo_id = array();
        }
        //mettre à jour la correspondance photo_id - annonce_id
        annonceSrv::insertPhotoAnnonce($annonce->annonce_id, $photo_id );

        //insertion des equipements et choix

        if($annonce->annonce_id && $annonce->annonce_id_equipement) {
            annonceSrv::insertAnnonceEquipment($annonce->annonce_id,$annonce->annonce_id_equipement );
        }
        
        if($annonce->annonce_id && $annonce->choix) {
            annonceSrv::insertAnnonceEquipmentChoix($annonce->annonce_id,$annonce->choix);
        }
        
        // session pour la récapitulation de l'annonce sur la page suivante (choix formule : advert 2)
        $recapAnnonce = new stdClass();
        $marque = common::chargeParId($annonce->Occas_Marque, 'ao_marque');
        $modele = common::chargeParId($annonce->Occas_Modele, 'ao_modele');

        $recapAnnonce->marque       = $marque->marque_libelle;
        $recapAnnonce->modele       = $modele->modele_libelle;
        $recapAnnonce->version      = $annonce->Occas_Version;
        $recapAnnonce->km           = $annonce->Occas_Kilometrage;
        $recapAnnonce->prix         = $annonce->Occas_Prix;
        $recapAnnonce->vendeurNom   = $annonce->vendeur_prenom . ' ' . $annonce->vendeur_nom;

        $recapAnnonce->tel1         = vendeurSrv::formatTel($annonce->vendeur_tel_dom);
        $recapAnnonce->tel2         = vendeurSrv::formatTel($annonce->vendeur_tel_bureau);
        $recapAnnonce->tel3         = vendeurSrv::formatTel($annonce->vendeur_tel_por);
        $recapAnnonce->vendeurMail  = $annonce->vendeur_email;
        $recapAnnonce->nom          = $annonce->vendeur_nom;
        $recapAnnonce->naissance    = $this->stringParam('date_naissance','');
        $recapAnnonce->immatriculation    = $annonce->vendeur_immatriculation;
        
        // équipements et choix
        $listeCategEquipements  = common::liste("categ_equipement");
        $liste                  = annonceEquipementSrv::listeDetailWithChoices();
        $equipements            = annonceEquipementSrv::getEquipementsByAnnonceId($annonce->annonce_id);
        $choixEquipements       = annonceEquipementSrv::getChoixEquipementsByAnnonceId($annonce->annonce_id);

        $recapAnnonce->recapEquipement = annonceEquipementSrv::getRecapEquipement($listeCategEquipements, $liste, $equipements, $choixEquipements);
        $_SESSION['SESS_RECAP_ANNONCE'] = serialize($recapAnnonce);

        // --- fin récap annonce

        $rep         = $this->getResponse('redirect');
        $rep->action = 'annonce~FoAnnonceDeposer:choixFormule';
        $rep->params = array('idOccasion' => $annonce->idOccasion);

        return $rep;
    }


    /**
    * FO : page d'ajout d'annonce - confirmation
    * + envoi mail
    *  page de confirmation, l’annonce est à l'état valide=0. Si la formule est gratuite, l’annonce est à l'état estPaye=1 et estSaisie=0.
    */
    function confirmation() {

        $id             = $this->intParam('id', ''); // id de la formule
        $idOccasion     = $this->intParam('idOcc', 0);
        $type           = $this->stringParam('type', '');
        $montant        = $this->param('mt','');
        $idOccasion = ($idOccasion) ? $idOccasion : $this->intParam('idOccasion', 0);

        jClasses::inc('annonce~annonceSrv');
        jClasses::inc('commun~common');        //envoi du mail - step 1
        jClasses::inc("commun~toolsMail");

        $rep = $this->getResponse('htmlFo');

        $rep->menusActifs = frontHtmlResponse::MENU_ANNONCE_GESTION ;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ANNONCE_GESTION) ;

		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');


        // MAJ de l'annonce valide = 0, estSaisie= 0, si gratuite : estPayée:1
        if ($idOccasion)
            annonceSrv::confirmAddAdvert($idOccasion, 0, 0, 1);
        
        // MAJ de Occas_TypePaiement
        if ($idOccasion)
            annonceSrv::updateOccasPaiement($idOccasion, $type, $montant);

        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ANNONCE_AJOUT_CONFIRM);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---

        $recapAnnonce = null;
        if (isset($_SESSION['SESS_RECAP_ANNONCE'])) {
            $recapAnnonce = unserialize($_SESSION['SESS_RECAP_ANNONCE']);
        }

        $datas = new stdClass();
        $datas->email       = $recapAnnonce->vendeurMail;
        $datas->Username    = "Auto-occasion";
        $datas->FromName    = "Webmaster";
        $datas->Subject     = "Auto-occasion : Confirmation - ajout annonce";

        $lien = $_SERVER['SERVER_NAME'] . jUrl::get('annonce~FoAnnonceDeposer:confirmation_2', array('id'=>$id, 'idOccasion'=>$idOccasion,'type'=>$type));
        $lien = 'http://' . $lien;

        $message =  common::chargeParId(MAIL_ADD_ADVERT_CONFIRM, 'ao_mail_templates');
        $datas->message =  $message->mail_content;
        $datas->message =  str_replace('{_LIEN}', $lien, $datas->message);
        toolsMail::sendMail($datas);
        // --- fin: envoi mail

        $path = $_SERVER['SERVER_NAME'] . jUrl::get('annonce~FoAnnonceGestion:index');
        $path = 'http://' . $path;
        $rep->body->assign('path', $path);
        $rep->body->assign('recapAnnonce', $recapAnnonce);
        $rep->body->assign('idOccasion', $idOccasion);

        $rep->bodyTpl = 'annonce~FoAnnonceDeposerConfirmation';
       
        return $rep;
    }
    /**
    * FO : page d'ajout d'annonce - confirmation - fin
    * + envoi mail
    */
    function confirmation_2() {

        jClasses::inc("commun~toolsMail");
        jClasses::inc("commun~common");
        jClasses::inc("formule~formuleSrv");
        jClasses::inc("annonce~vendeurSrv");
        jClasses::inc('annonce~annonceSrv');


        $id             = $this->intParam('id', 0);
        $idOccasion     = $this->intParam('idOccasion', 0);
        $type           = $this->stringParam('type', '');

        
        $rep = $this->getResponse('htmlFo');

        $rep->menusActifs = frontHtmlResponse::MENU_ANNONCE_GESTION ;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ANNONCE_GESTION) ;

		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');

        // Après avoir cliqué sur le lien du mail, le vendeur tombe sur la page validation. L’annonce reste à l'état valide=0, 
        // mais passe à estPayee=1 (puisque c’est la page de confirmation de paiement), estSaisie=1.
        if ($idOccasion)
            annonceSrv::confirmAddAdvert($idOccasion, 0, 1, 1);
        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_ANNONCE_AJOUT_CONFIRM_FIN);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---

        $recapAnnonce = vendeurSrv::getVendeurByIdOccasion($idOccasion);

        switch ($id) {
            case FORMULE_BASIQUE :
                $formule = common::chargeParId(FORMULE_BASIQUE, 'ao_formule');
                break;
            case FORMULE_DYNAMIQUE :
                $formule = common::chargeParId(FORMULE_DYNAMIQUE, 'ao_formule');
                break;
            case FORMULE_FEERIQUE :
                $formule = common::chargeParId(FORMULE_FEERIQUE, 'ao_formule');
                break;
            default: $formule = common::init('ao_formule');
        }
        // option de la formule
        $option_formule = ($id) ? common::liste('ao_option_formule') : array();

        $deniedFormule  = array(1, 4, 20, 21);

        //envoi du mail - mm contenu que le tpl
        
        $datas = new stdClass();
        $datas->email       = $recapAnnonce->Vendeur_Email;
        $datas->Username    = "Auto-occasion";
        $datas->FromName    = "Webmaster";
        $datas->Subject     = "Auto-occasion : Vos identifiants de connnexion";
        
        
        $lien = $_SERVER['SERVER_NAME']. jUrl::get('annonce~FoAnnonceGestion:confirmation_2', array('confirm'=>1));
        $lien = 'http://' . $lien;
        
        // path pour la gestion d'annonce en FO
        $path = $_SERVER['SERVER_NAME'] . jUrl::get('annonce~FoAnnonceGestion:index');
        $path = 'http://' . $path;
        
        // lien divers
        $linkAssurance  = common::getUrl('annonce~FoAnnonceFAQ:assuranceAuto');
        $linkCredit     = common::getUrl('annonce~FoAnnonceFAQ:creditAuto');
        $linkCarte      = common::getUrl('annonce~FoAnnonceFAQ:carteGrise');

        $tpl = new jTpl();
        $tpl->assign('datas', $datas);
        $tpl->assign('path', $path);
        $tpl->assign('formule', $formule);
        $tpl->assign('option_formule', $option_formule);
        $tpl->assign('deniedFormule', $deniedFormule);
        $tpl->assign('lienConfirmation', $lien);
        $tpl->assign('recapAnnonce', $recapAnnonce);
        $tpl->assign('linkAssurance', $linkAssurance);
        $tpl->assign('linkCredit', $linkCredit);
        $tpl->assign('linkCarte', $linkCarte);
        $option_liste =  $tpl->fetch('annonce~FoAnnonceDeposerOptionList');

        if ($type!='ch'){     //si paiement autre que par chèque
            $message        =  common::chargeParId(MAIL_ADD_ADVERT_VALID, 'ao_mail_templates');
        } else{
            $message        =  common::chargeParId(MAIL_ADD_ADVERT_VALID_CHEQUE, 'ao_mail_templates');
        }

        $datas->message =  $message->mail_content;

        $datas->message =  str_replace('{_FORMULE_TITRE}',          $formule->titre,                    $datas->message);
        $datas->message =  str_replace('{_OPTION_LISTE}',           $option_liste,                      $datas->message);
        $datas->message =  str_replace('{_PATH}',                   $path,                              $datas->message);
        $datas->message =  str_replace('{_VENDEUR_NOM}',            $recapAnnonce->Vendeur_Nom,         $datas->message);
        $datas->message =  str_replace('{_VENDEUR_NAISSANCE}',      $recapAnnonce->Vendeur_Naissance,   $datas->message);
        $datas->message =  str_replace('{_OCCAS_NUMIMMATRICUL}',    $recapAnnonce->Occas_NumImmatricul, $datas->message);
        $datas->message =  str_replace('{_LINKASSURANCE}',          $linkAssurance,                     $datas->message);
        $datas->message =  str_replace('{_LINKCREDIT}',             $linkCredit,                        $datas->message);
        $datas->message =  str_replace('{_LINKCARTE}',              $linkCarte,                         $datas->message);

        toolsMail::sendMail($datas);
        // --- fin: envoi mail

        
        $rep->body->assign('path', $path);
        $rep->body->assign('formule', $formule);
        $rep->body->assign('option_formule', $option_formule);
        $rep->body->assign('recapAnnonce', $recapAnnonce);
        $rep->body->assign('deniedFormule', $deniedFormule);
        $rep->body->assign('linkAssurance', $linkAssurance);
        $rep->body->assign('linkCredit', $linkCredit);
        $rep->body->assign('linkCarte', $linkCarte);
        $rep->body->assign('type', $type);
        $rep->body->assign('idOccasion', $idOccasion);

        $rep->bodyTpl = 'annonce~FoAnnonceDeposerConfirmationFin';
       
        return $rep;
    }
	function ajaxCheckImage() {
		 jClasses::inc("commun~parametre");
		 $oRep						= $this->getResponse('json');
		 $oParams					= parametre::getParamsByName("MAX_FILE_SIZE") ;
		 $iTaille					= $oParams->param_content ;
		 $oRep->data				= $iTaille ;
		 return $oRep ;
	
	}

}